package net.hn.hnms.biz.mine.service;

import net.hn.hnms.biz.mine.domain.dto.CoverageDto;
import net.hn.hnms.biz.mine.domain.dto.DefinedSensorDto;
import net.hn.hnms.biz.mine.domain.vo.CoverageListVo;
import net.hn.hnms.biz.mine.domain.vo.CoverageTreeListVo;
import net.hn.hnms.biz.mine.vo.*;
import net.hn.hnms.biz.mine.vo.*;

import java.util.List;

/**
 * 图层标注接口类
 */
public interface CoverageService {
    /**
     * 根据系统类型获取测点列表
     * @param osType
     * @return
     */
    List<BaseSensorVo> getBaseListByType(String osType, String mineCode, String companyCode);

    /**
     * 更新测点坐标
     * @param baseSensorDto
     * @return
     */
    Boolean UpDataSensorCoordinate(BaseSensorDto baseSensorDto);

    /**
     * 删除测点坐标
     * @param sensorCoordinateDto
     * @return
     */
    Boolean deleteSensorCoordinate(SensorCoordinateDto sensorCoordinateDto);

    /**
     * 更新图层测点列表
     * @param coverageSensorListDto
     * @return
     */
    Boolean UpDataCoverageSensorList(CoverageSensorListDto coverageSensorListDto);

    /**
     * 根据图层类型获取系统测点列表
     * @param coverageType
     * @return
     */
    List<CoverageSystemListDto> getOsListByType(String coverageType, String mineCode, String companyCode);

    /**
     * 图层-获取图层信息列表
     * @param mineCode
     * @return
     */
    List<CoverageListVo> getCoverageList(String mineCode);

    /**
     * 图层-新增图层
     * @param coverageDto
     * @return
     */
    Boolean coverageAdd(CoverageDto coverageDto);

    /**
     * 图层-加锁或解锁
     * @param coverageCode
     * @param mineCode
     * @return
     */
    Boolean coverageLockFlag(String coverageCode, String mineCode);

    /**
     * 图层-批量删除图层
     * @param coverageCodeList
     * @return
     */
    Boolean coverageDelete(List<String> coverageCodeList);

    /**
     * 自定义测点-新增测点
     * @param definedSensorDto
     * @return
     */
    Boolean customAdd(DefinedSensorDto definedSensorDto);

    /**
     * 获取图层树状列表
     * @param mineCode
     * @return
     */
    List<CoverageTreeListVo> getCoverageTreeList(String mineCode);
}
